package com.itheima.stringTest;

import java.util.Scanner;
import java.util.StringJoiner;

public class strDemo3 {
    /**
     * 封装方法：数组中的元素 拼接 、 反转 、 金额转换
     **/
    public static void main(String[] args) {
/** 需求1：定义一个方法，把 int 数组中数据按指定格式拼接成字符串返回。如: 数组 [1,2,3] ===》 字符串 [1,2,3]  **/
       /* int[] arr = {1, 2, 3};
        String restr = Fun1(arr);
        System.out.println("restr>>>>" + restr);*/

/** 需求2：定义一个方法，实现字符串反转。键盘录入字符串，调方法，打印反转后的字符串。如：abc ==> cba  **/
        /*Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串：");
        String str = sc.next();
        String strRev = fun2(str);
        System.out.println("反转后的字符串是：" + strRev);*/

/** 需求3：定义一个方法，键盘录入金额数字， 自动转成 中文大写数字；如：123 ==> 零佰零拾零万零仟壹佰贰拾叁元 0000123**/
        Scanner sc = new Scanner(System.in);
        System.out.println("录入金额数字:");
        int money = sc.nextInt();
        String moneyStr = fun3(money);
        System.out.println("最终的值为：" + moneyStr);
    }

/** 方法1：字符串拼接数组中的元素 **/
    /*public static String Fun1(int[] arr) {
        String first = "[";
        String end = "]";
        String result = "";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                result += arr[arr.length - 1];
                break;
            }
            result += arr[i] + ",";
        }
        result = first + result + end;
        return result;
    }*/
/** 方法2：反转字符串 **/
   /* public static String fun2(String str) {
        String restr = "";
        for (int i = str.length() - 1; i >= 0; i--) {   //  倒着遍历字符串，并进行拼接！
            restr += str.charAt(i);
        }
        return restr;
    }*/

    /**
     * 方法3：数字金额 转成中文数字金额
     **/
    public static String fun3(int money) {
//        校验，录入的值大于0，且不能超出7位数
        if (money < 0 || money > 9999999) {
            return "录入的值超过了规定范围！！";
        }
//        补零
        String rest = "";
        int count = 7;
        while (true) {
            count--;
            int ge = money % 10;
            rest = ge + rest;
            money = money / 10;
            if (money == 0) {
                break;
            }
        }
        for (int i = 0; i < count; i++) {
            rest = "0" + rest;
        }
//        数字转中文（查表法）
        String[] zhNum = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        String restZH = "";
        for (int i = 0; i < rest.length(); i++) {
            int index = rest.charAt(i) - 48; //            字符转数字
            restZH += zhNum[index];
        }
//        插入单位（查表法）
        String[] dw = {"佰","拾","万","仟","佰","拾","元"};
        String reslut = "";
        for (int i = 0; i < restZH.length(); i++) {
            reslut += restZH.charAt(i) + dw[i];
        }
        return reslut;
    }
}
